Storage devices, such as hard disk drives and solid state drives, provide storage media for host processing systems to store and read various data objects. These data objects may include images, videos, word documents, spreadsheets, and various other file types capable of being processed by the host processing system. To make storage media available to the host system, one or more of the storage devices may be communicatively coupled to the system using a Small Computer System Interface (SCSI) bus, a Serial Attached SCSI (SAS) bus, a Serial Advanced Technology Attachment (SATA) bus, a Peripheral Component Interconnect Express (PCIe) bus, Fibre Channel, or some other similar interface or bus.
In some examples, storage devices may include processing systems capable of managing and monitoring the stored data as it is written to the storage media. In particular, the processing systems may be capable of identifying data to be written to the storage media, generating error correcting code (ECC) or parity data for the data to be written, and writing the data with the ECC data to the storage media. This ECC information may then be used by the storage system, when a read request is received, to help ensure that the correct data is provided to the processing system by applying the ECC data to the data and correcting any errors within the sectors. However, storage devices may be limited in the number of sectors that they can correct for the host processing system.
Further, in some implementations, Write Verify Functions may be used by host processing system with respect to storage devices to ensure that proper data is written to the storage media. This function permits a read command to be executed immediately after a write command to ensure that the data has been written properly to the storage media. However, this additional read command can cause a loss of performance in the hard drive, as each read takes resources that could be dedicated to other read and write operations on the device.